package pers.cz.common.pub;

import java.util.List;

/**
 * @program: jef-orm
 * @description: 查询条件
 * @author: Cheng Zhi
 * @create: 2023-08-12 16:03
 **/
public interface Query {

    /**
     * 清除查询条件
     */
    public void clearQueryCondition();

    /**
     * 增加查询条件
     * @param columnName    数据库字段名
     * @param operator 操作类型
     * @param value    值
     */
    public void addCondition(String columnName, Operator operator, Object value);

    /**
     * 查询条件
     * @param queryColumn
     * @param operator
     * @param value
     */
    public void addCondition(Field queryColumn, Operator operator, Object value);

    /**
     * 查询条件
     * @param queryColumn
     * @param value
     */
    public void addCondition(Field queryColumn, Object value);

    /**
     * 绑定其他复杂条件，最终会被拼接到其他条件的末尾
     * @param sql
     */
    public void bindOtherFianlCondition(String sql);

    /**
     * 获取绑定的sql;
     * @return
     */
    public String getOtherBindFinalCondition();

    /**
     * 获取所有条件
     * @return
     */
    public List<Condition> getConditions();
}
